home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48hor1 / helpdb.src < prev    next >
Text File  |  1990-10-17  |  5KB  |  169 lines

  1. %%HP: T(3)A(D)F(.);
  2. @ by Scotty Thompson
  3. DIR
  4.   HELP
  5.     \<< CLLCD DEPTH 0 \-> dep gn
  6.       \<< 1 CF
  7.         IF dep 0 ==
  8.         THEN "NO OBJECTS ON STACK." 1 SF
  9.         ELSE DUP
  10.           IF TYPE 6 \=/
  11.           THEN "INVALID OBJECT TYPE." 1 SF
  12.           END
  13.         END
  14.         DO 2 CF 4 CF 6 CF
  15.           WHILE 1 FS?C
  16.           REPEAT
  17.             IF 6 FC?C
  18.             THEN "\010\010"
  19.             ELSE "\010"
  20.             END " ENTER GLOBAL NAME:" + + "" INPUT REMSP "'" + "'" SWAP + DUP
  21.             IF "''" ==
  22.             THEN DROP KILL
  23.             END DUP
  24.             IF "'PURGE'" ==
  25.             THEN DROP "0"
  26.               IF 2 FS?
  27.               THEN 2 CF
  28.               ELSE 2 SF
  29.               END 3 SF
  30.             END DUP
  31.             IF "'DEFINE'" ==
  32.             THEN DROP "0"
  33.               IF 4 FS?
  34.               THEN 4 CF
  35.               ELSE 4 SF
  36.               END 5 SF
  37.             END
  38.             IFERR OBJ\->
  39.             THEN DROP 0
  40.             END
  41.             IFERR DUP
  42.             THEN 0 0
  43.             END
  44.             IF TYPE 6 \=/
  45.             THEN DROP
  46.               IF 3 FC? 5 FC? AND
  47.               THEN "INVALID OBJECT TYPE."
  48.               ELSE
  49.                 IF 3 FS?C THEN ""
  50.                   IF 4 FS?C
  51.                   THEN DROP 6 SF "DEFINE CANCELED.\010"
  52.                   END
  53.                   IF 2 FS?
  54.                   THEN "PURGE HELP TEXT."
  55.                   ELSE "PURGE CANCELED."
  56.                   END +
  57.                 END
  58.                 IF 5 FS?C
  59.                 THEN ""
  60.                   IF 2 FS?C
  61.                   THEN DROP 6 SF "PURGE CANCELED.\010"
  62.                   END
  63.                   IF 4 FS?
  64.                   THEN "DEFINE HELP TEXT."
  65.                   ELSE "DEFINE CANCELED."
  66.                   END +
  67.                 END
  68.               END 1 SF
  69.             END
  70.           END 'gn' STO gn VTYPE 1 + DUP
  71.           IF NOT
  72.           THEN DROP 1 SF
  73.           END "NAME: " gn \->STR +
  74.           IF 4 FS?
  75.           THEN DUP
  76.             IF 1 FS?
  77.             THEN "NO "
  78.             ELSE "DEFINE "
  79.             END SWAP + "\010\010ENTER TEXT \<= 48 CHRS:" + "" INPUT 1 48 SUB
  80.               REMCR DUP
  81.             IF "" ==
  82.             THEN DROP
  83.             ELSE gn \->STR SWAP + 1 CHR +
  84.               IFERR :0: XXXHELP RCL NEWOB
  85.               THEN DROP ""
  86.               END DUP
  87.               IF gn \->STR POS NOT
  88.               THEN SWAP + :0: XXXHELP DUP PURGE STO
  89.               ELSE DROP2
  90.               END
  91.             END
  92.           END
  93.           IF 1 FS?
  94.           THEN "\010TYPE: UNDEFINED \010SIZE: UNDEFINED \010 CRC: UNDEFINED" +
  95.           ELSE SWAP { "REAL" "COMPLEX" "STRING" "REAL ARRAY" "COMPLEX ARRAY"
  96.             "LIST" "GLOBAL NAME" "LOCAL NAME" "PROGRAM" "ALGEBRAIC"
  97.             "BINARY INTEGER" "GRAPHICS OBJECT" "TAGGED OBJECT" "UNIT OBJECT"
  98.             "XLIB NAME" "DIRECTORY" "LIBRARY" "BACKUP OBJECT" "FUNCTION"
  99.             "COMMAND" } SWAP GET "\010TYPE: " SWAP + + "\010SIZE: " gn BYTES
  100.             \->STR SWAP "\010 CRC: " SWAP \->STR + + + +
  101.           END 10 CF "\010TEXT: "
  102.           IFERR :0: XXXHELP RCL NEWOB
  103.           THEN DROP "NONE" 10 SF
  104.           END
  105.           IF 10 FC?C
  106.           THEN DUP gn \->STR POS DUP
  107.             IF NOT
  108.             THEN DROP2 "NONE"
  109.             ELSE
  110.               IF 2 FS?C
  111.               THEN DUP
  112.                 IF 1 ==
  113.                 THEN DROP DUP 1 CHR POS 1 + SWAP DUP SIZE ROT SWAP SUB
  114.                   :0: XXXHELP DUP PURGE STO "PURGED" END
  115.                 ELSE gn \->STR SIZE + SWAP DUP SIZE ROT SWAP SUB DUP 1 CHR POS
  116.                   1 - 1 SWAP SUB 1 48 SUB REMCR DUP 1 16 SUB SWAP DUP 17 32 SUB
  117.                   SWAP 33 48 SUB "\010      " SWAP + + "\010      " SWAP + +
  118.               END
  119.             END
  120.           END + + DUP CLLCD 0 DISP
  121.           DO 0 WAIT DUP
  122.             IF 21.2 ==
  123.             THEN DROP WON "  H E L P" WOFF + + PR1 DROP CR PR1 CR
  124.               " - - - - - - - - - - " PR1 DROP CR CR CR 0
  125.             END
  126.           UNTIL IP 51 ==
  127.           END DROP CLLCD "PRESS ENTER TO END." 1 SF
  128.         UNTIL 0
  129.         END
  130.       \>>
  131.     \>>
  132.   REMCR @ remove carriage returns
  133.     \<< 3 CF
  134.       DO DUP
  135.         IF "\010" POS DUP
  136.         THEN DUP
  137.           IF 1 ==
  138.           THEN DROP DUP SIZE 2 SWAP SUB
  139.           ELSE SWAP DUP 1 4 PICK 1 - SUB SWAP 3 PICK 1 + OVER SIZE SUB + SWAP
  140.             DROP
  141.           END
  142.         ELSE DROP 3 SF
  143.         END
  144.       UNTIL 3 FS?C
  145.       END
  146.     \>>
  147.   REMSP @ remove spaces
  148.     \<< 3 CF
  149.       DO DUP
  150.         IF " " POS DUP
  151.         THEN DUP
  152.           IF 1 ==
  153.           THEN DROP DUP SIZE 2 SWAP SUB
  154.           ELSE SWAP DUP 1 4 PICK 1 - SUB SWAP 3 PICK 1 + OVER SIZE SUB + SWAP
  155.             DROP
  156.           END
  157.         ELSE DROP 3 SF
  158.         END
  159.       UNTIL 3 FS?C
  160.       END
  161.     \>>
  162.   WOFF @ wide off
  163.     \<< 27 CHR 252 CHR +
  164.     \>>
  165.   WON @ wide on
  166.     \<< 27 CHR 253 CHR +
  167.     \>>
  168. END
  169.